home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / taropyon / silib / inc / sigln.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-16  |  4.7 KB  |  149 lines

  1. /*************************************************************************
  2. *    "sigln.h"
  3. *-------------------------------------------------------------------------
  4. *    Line input library
  5. *                                            Copyright (c) 1993, TaroPYON
  6. *************************************************************************/
  7.  
  8. #ifndef    _SIGLN_H
  9. #define    _SIGLN_H
  10.  
  11. #ifndef    _SIEV_H
  12. #    include    <siev.h>
  13. #endif
  14. #ifndef    _SIIDL_H
  15. #    include    <siidl.h>
  16. #endif
  17. #ifndef    _SIFTS_H
  18. #    include    <sifts.h>
  19. #endif
  20. #ifndef    _SIWIN_H
  21. #    include    <siwin.h>
  22. #endif
  23. #ifndef    _SIKCS_H
  24. #    include    <sikcs.h>
  25. #endif
  26.  
  27. #define    GLN_IDL_PRIO    (1)
  28.  
  29. #define    GLN_CURSTT_BLINK    (0x0001_0000)    /* カーソルブリンク    */
  30. #define    GLN_CURSTT_DSPON    (0x0000_0001)    /* カーソル表示中    */
  31.  
  32. typedef struct _glnhisdat_t    /* ヒストリデータ構造体    */
  33. {
  34.     struct _glnhisdat_t       *next, *prev;
  35.     size_t                    len;
  36.     char                   *s;
  37. } GLNHISDAT_T;
  38.  
  39. typedef    struct                /* ヒストリ構造体            */
  40. {
  41.     int                linMax;        /* 何行保持しておくか        */
  42.     int                linNo;        /* 現在位置                    */
  43.     GLNHISDAT_T       *crt;        /* 現在位置                    */
  44.     GLNHISDAT_T       *top;        /* 先頭                        */
  45.     GLNHISDAT_T       *last;        /* 最終                        */
  46.     GLNHISDAT_T       *org;        /* オリジナル                */
  47. } GLNHIS_T;
  48.  
  49. typedef struct _gln_t
  50. {
  51.     unsigned int    att;        /* 属性                    */
  52.     unsigned int    stt;        /* ステータス            */
  53.  
  54.     EV_T           *ev;            /* イベント                */
  55.     FRAME_T            fr;            /* 表示フレーム            */
  56.     FRAME_T            frCur;        /* カーソルフレーム        */
  57.     FTSDAT_T        *fts;        /* フォント                */
  58.     int                spcX,spcY;    /* 字間                    */
  59.     int                tabSiz;        /* タブサイズ            */
  60.     int                ofsX;        /* 表示オフセット(dot)    */
  61.     int                mdInp;        /* 入力モード            */
  62.     int                flgEdit;    /* 編集したかどうか        */
  63.  
  64.     int                sttCur;        /* カーソル状態            */
  65.     unsigned int    clkCur;        /* カーソルブリンク用    */
  66.     IDL_T            *idl;        /* アイドリング用        */
  67.  
  68.     size_t            bufSiz;        /* バッファサイズ        */
  69.     size_t            bufLen;        /* 入力文字数            */
  70.     size_t            curPos;        /* カーソル位置            */
  71.     char           *buf;        /* 入力用バッファ        */
  72.     char           *bufDsp;        /* 表示用バッファ        */
  73.     char           *org;        /* オリジナル文字列        */
  74.     char           *sHis;        /* 1行ヒストリ            */
  75.  
  76.     int                selFlag;    /* 選択中                */
  77.     size_t            selTop;        /* 選択開始位置            */
  78.     size_t            selLast;    /* 選択最終位置            */
  79.  
  80.     KCS_T           *kcs;        /* キーカスタマイズ用    */
  81.     GLNHIS_T       *his;        /* ヒストリ                */
  82.  
  83.     WIN_T           *win;        /* ウィンドゥ            */
  84.     int                (*func)(int,struct _gln_t *);
  85.     void           *ptr;        /* 汎用ポインタ            */
  86.  
  87.     int                evNo[16];    /* イベントNo            */
  88.     COLOR_T           *colTbl;    /* カラーテーブル        */
  89. } GLN_T;
  90.  
  91. #define    GLN_STT_STOP        (0x0000_0001)    /* 動作停止    */
  92.  
  93. #define    GLN_INP_INS        (0)                /* 挿入モード    */
  94.  
  95. #define    GLN_EVNO_NOTHING    (0)
  96. #define    GLN_EVNO_CANCEL        (1)            /* キャンセル    */
  97. #define    GLN_EVNO_END        (2)            /* 終了            */
  98. #define    GLN_EVNO_MOVCUR        (3)            /* カーソル移動    */
  99. #define    GLN_EVNO_EDIT        (4)            /* 編集あり        */
  100.  
  101. /*    "gln010.c"        ----------------------------------------------------*/
  102. extern GLN_T   *GLN_workAlloc( int (*func)(int,GLN_T *), void *ptr );
  103. extern void        GLN_workFree( GLN_T *gln );
  104.  
  105. /*    "gln011.c"        ----------------------------------------------------*/
  106. extern int        GLN_setKcs( GLN_T *gln, unsigned int att );
  107.  
  108. /*    "gln021.c"        ----------------------------------------------------*/
  109. extern int        GLN_setBuf( GLN_T *gln, size_t bufSiz, CONST char *s );
  110. extern int        GLN_setPos( GLN_T *gln, FRAME_T *fr );
  111. extern int        GLN_start( GLN_T *gln );
  112. extern int        GLN_stop( GLN_T *gln );
  113.  
  114. /*    "gln022.c"        ----------------------------------------------------*/
  115. extern int        GLN_evWorkAlloc( GLN_T *gln, EV_T *bsEv );
  116.  
  117. /*    "gln023.c"        ----------------------------------------------------*/
  118. extern int        GLN_setWin( GLN_T *gln, WIN_T *win );
  119.  
  120. /*    "gln024.c"        ----------------------------------------------------*/
  121. extern int        GLN_evLink( GLN_T *gln, EV_T *bsEv );
  122.  
  123. /*    "gln025.c"        ----------------------------------------------------*/
  124. extern int        GLN_blink( GLN_T *gln, int on_off );
  125.  
  126. /*    "gln031.c"        ----------------------------------------------------*/
  127. extern int        GLN_chkNextCurPos( GLN_T *gln, int len );
  128. extern int        GLN_chkCurPos( GLN_T *gln );
  129. extern int        GLN_isBackCh( GLN_T *gln );
  130.  
  131. /*    "glnflush.c"    ----------------------------------------------------*/
  132. extern int        GLN_flush( GLN_T *gln );
  133. extern void        GLN_flush2( GLN_T *gln );
  134.  
  135. /*    "glncdsp.c"        ----------------------------------------------------*/
  136. extern int        GLN_curDsp( GLN_T *gln, int on_off );
  137.  
  138. /*    "glnbuf.c"        ----------------------------------------------------*/
  139. extern int        GLN_setStr( GLN_T *gln, size_t len, CONST char *s );
  140. extern int        GLN_del( GLN_T *gln, size_t len );
  141.  
  142. /*    "glnhis.c"        ----------------------------------------------------*/
  143. extern int        GLN_setHis( GLN_T *gln, GLNHIS_T *his );
  144.  
  145. /*    "gln101.c"        ----------------------------------------------------*/
  146. extern int        GLN_kcsFnc( GLN_T *gln, KCSKEY_T *kcsKey );
  147.  
  148. #endif
  149.